home *** CD-ROM | disk | FTP | other *** search
- // Copyright (c)1995 Ray Dream, Inc. All Rights Reserved.
- /* $Id: COMFlat.h 1.5 1997/06/20 22:30:30 damien Exp $ */
-
- // Rectangular Flat surface
- // COM Example of a Geometric Primitive based on Facets
- //
-
- #ifndef __COMFLAT__
- #define __COMFLAT__
-
- #ifndef __I3DEXPRM__
- #include "I3DExPrm.h"
- #endif
-
- #ifndef __FLATDLL__
- #include "FlatDLL.h"
- #endif
-
- // Component Object Model Definition :
-
- // define the Flat CLSID
- // 44CB8480-BB96-11CE-93A4-0000E202D5A5
- DEFINE_GUID(CLSID_Flat, 0x44CB8480L, 0xBB96, 0x11CE, 0x93, 0xA4, 0x00, 0x00, 0xE2, 0x02, 0xD5, 0xA5);
-
-
- // Flat Surface definition :
- // Flat Object :
- #undef INTERFACE
- #define INTERFACE Flat
- class Flat : public I3DExGeometricPrimitive, public I3DExDataExchanger {
- public :
- Flat();
- ~Flat();
-
- // IUnknown Interface :
- STDMETHODIMP QueryInterface(THIS_ REFIID riid, LPVOID FAR* ppvObj);
- STDMETHODIMP_(ULONG) AddRef(THIS);
- STDMETHODIMP_(ULONG) Release(THIS);
-
- // I3DExtension method :
- STDMETHODIMP_(I3DExtension*) Clone(THIS);
- STDMETHODIMP ShellUtilitiesInit(THIS_ IShUtilities* shellUtilities);
-
- // I3DExDataExchanger methods :
- STDMETHODIMP_(ExtensionDataMap*) GetExtensionDataMap(THIS);
- STDMETHODIMP_(void*) GetExtensionDataBuffer(THIS);
- STDMETHODIMP ExtensionDataChanged(THIS);
- STDMETHODIMP HandleEvent(THIS_ ULONG sourceID);
- STDMETHODIMP_(short) GetResID(THIS);
-
- // I3DExGeometricPrimitiv methods
- // Geometric Calls
- STDMETHODIMP GetBBox(THIS_ BOX3D* bbox);
- STDMETHODIMP EnumPatches(THIS_ EnumPatchesCallback callback, void* privData);
- STDMETHODIMP EnumFacets(THIS_ EnumFacetsCallback callback, void* privData,NUM3D fidelity);
- STDMETHODIMP GetNbrLOD(short &nbrLod);
- STDMETHODIMP GetLOD(short lodIndex, NUM3D &lod);
- STDMETHODIMP MakeFacetMesh(THIS_ short index, FacetMesh &amesh);
- STDMETHODIMP MakeFacetMesh(THIS_ NUM3D lod,FacetMesh &amesh);
- // Shading Calls
- STDMETHODIMP_(ULONG) GetUVSpaceCount(THIS);
- STDMETHODIMP GetUVSpace(THIS_ ULONG uvSpaceID, UVSpaceInfo* uvSpaceInfo);
- STDMETHODIMP UV2XYZ(THIS_ VECTOR2D* uv, ULONG uvSpaceID, VECTOR3D* resultPosition, BOOLEAN* inUVSpace);
- // Ray tracing Calls
- STDMETHODIMP RayHit(THIS_ BOOLEAN* didHit, Ray3D* aR, RayHitParameters* RayHitParams, RayHit3D* hit);
- STDMETHODIMP GetRayHitDetails(THIS_ RayHit3D* hit);
- STDMETHODIMP RayAllHits(THIS_ Ray3D* aR, NUM3D tmin, NUM3D tmax, RayHit3D* hit, RayHitCallback callback, void* privData);
-
- private :
- ULONG fCRef; // reference Counter
- };
-
-
- #endif // __FLAT__
-
-